package com.robinmouren.entity;

import com.baomidou.mybatisplus.annotation.*;

import java.time.LocalDateTime;
import java.io.Serializable;

import lombok.*;

/**
 * <p>
 * 订单表
 * </p>
 *
 * @author Robinmouren
 * @since 2024-05-12
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class OrderInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private Long id;
    /**
     * 订单号
     */
    private Long userId;
    /**
     * 订单号
     */
    private String orderNumber;

    /**
     * 合同编号
     */
    private String contractNumber;

    /**
     * 运单号
     */
    private String trackingNumber;

    /**
     * 订单状态，暂定
     */
    private Integer status;

    /**
     * 始发地，包括省份和详细地址，用逗号隔开
     */
    private String originPlace;

    /**
     * 目的地
     */
    private String destination;

    /**
     * 委托方
     */
    private String principal;

    /**
     * 委托人
     */
    private String client;

    /**
     * 委托人电话
     */
    private String clientPhone;

    /**
     * 委托方详细地址
     */
    private String principalDetailedAddress;

    /**
     * 收货方
     */
    private String consignee;

    /**
     * 收货人
     */
    private String receiving;

    /**
     * 收货人电话
     */
    private String receivingPhone;
    /**
     * 货物总重量
     */
    private double weights;
    /**
     * 收货方详细地址
     */
    private String consigneeDetailedAddress;
    /**
     * 计划装货时间
     */
    private LocalDateTime loading;

    /**
     * 计划到货时间
     */
    private LocalDateTime unload;

    /**
     * 实际装货时间
     */
    private LocalDateTime actualLoading;

    /**
     * 实际到货时间
     */
    private LocalDateTime actualUnload;

    /**
     * 订单备注
     */
    private String remarks;
    /**
     * 审核意见
     */
    private String opinion;

    /**
     * 实际运费中的额外费用
     */
    private Double additionalCosts;
    /**
     * 报价有效截止期
     */
    private LocalDateTime quotationOverdue;
    /**
     * 询价有效截止期
     */
    private LocalDateTime inquiryOverdue;
    /**
     * 订单/询价单创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 订单/询价单创建人
     */
    @TableField(fill = FieldFill.INSERT)
    private Long createUser;

    /**
     * 订单/询价单修改时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /**
     * 订单/询价单修改人
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updateUser;


}
